home *** CD-ROM | disk | FTP | other *** search
-
-
-
- DRIVEPAD.SYS -- Air drives for DOS
-
-
- The problem:
-
- It is always unpleasant when you have to alter your configuration in ways
- which cause drive letters to change. For example, if you have a SCSI host
- adapter, you can freely add and subtract external drives, but this causes
- drive letters which follow the SCSI system to change. It would be nice to
- reserve a block of drive letters for use by the SCSI subsystem. This would
- allow you to keep constant the drive letters which might follow it.
-
- It is awkward to have to set up different config.sys and other configuration
- files for systems which are similar but which have different numbers of hard
- drives. Again, it is desirable to be able to create conditional `air drives'
- which pad the drive numbering process so that all the systems appear to have
- the same number of drives.
-
- For networking systems, it would be useful to be able to pad the hardware
- drive numbering so that the network drives begin at the same point for all
- systems in the network.
-
- If you use a configuration management utility, it can be a royal pain if you
- skip a driver in certain configurations, again because of the resulting
- change in drive lettering.
-
- One man's solution:
-
- DRIVEPAD is a tiny null block device. It is placed in config.sys with a
- single letter (A-Z) as its argument. It compares the argument letter with the
- `next drive' parameter passed to it by DOS during initialization and exits if
- the next drive letter is greater than or equal to the argument. Otherwise, it
- installs itself as enough drives to match the argument letter. It works only
- on DOS version 3.0 and greater.
-
- Example:
-
- device=drivepad.sys g
- device=ramdrive.sys
-
- will force the system to allocate drive letters through G: before loading
- ramdrive.sys, thus the ram disk will always be H:.
-
- Note that there is one kind of configuration which cannot be supported by
- drivepad.sys alone: if you have two BIOS drives and the C drive has extended
- volumes, removing the D drive will cause drive letters to change. Obviously,
- removing the C drive will also have this effect. For this reason, if you have
- two BIOS drives, either use a driver with the D drive and not the BIOS, or
- make sure the C drive is a single-volume drive.
-
- Also, drivepad.sys cannot take away previously installed drives, so it will
- complain if the argument drive letter is less than the last-allocated drive
- letter. In other words, if drives a-f already exist, the line
- `device=drivepad.sys e' is bogus, but `device=drivepad.sys f' is OK.
-
- Some technical details:
-
- In terms of driver commands, we do the following:
-
- - Device bits:
- Bit 15 clear, for block device
- Bit 13 set, for non-IBM disk
- --all others are clear
-
- - Init: do parameter checking, exit or install.
-
- - Media Check: returns `not changed' or 1.
-
- - Build BIOS Parameter Block: returns a pointer to the following data table:
- #bytes Value
- 2 512 bytes per sector (standard DOS)
- 1 4 sectors per chunk (standard HDD)
- 2 1 reserved sectors (incl. boot sector)
- 1 2 FATs (standard)
- 2 256 Max root entries (standard HDD)
- 2 65450 total sectors (imaginary 770/5/17 drive)
- 1 0xf8 media id byte (HDD)
- 2 64 sectors per FAT (max size)
- 2 17 sectors per track (standard mfm)
- 2 5 number of heads
- 4 0 hidden sectors
- 4 0 if <total sectors> == 0, total sectors
-
- - Read, Write, WriteVfy: return `Drive Not Ready'
-
- - All other commands return `Unknown Command'
-
- In closing:
-
- This program is my property, but you are welcome to use it. You are not
- authorized to sell it or to modify it. If you have comments or criticisms of
- drivepad.sys, or if you run into trouble setting it up, please contact me via
- e-mail and I will try to help.
-
- Greg Shenaut 71061,1324
- gkshenaut@ucdavis.edu
-